//按照  https://github.com/wendux/fly 的说明 引入fly.js
// Node 入口
var Fly = require("flyio/src/node")
var fly = new Fly;
// 引入 jwt
const jwt = require('jsonwebtoken');

//1.引入路由
const KoaRouter = require('koa-router');


//3.生成路由对象
const router = new KoaRouter();
//4.对外暴露路由对象
module.exports = router


//5.写一个测试接口
router.get('/test', (ctx) => {
    ctx.body = '返回测试数据'
})

router.get("/hi", (ctx) => {
    ctx.body = '哦靠'
})

//1.引入首页假数据
const indexData = require('../datas/index.json');
//2.设定访问接口
router.get('/getIndexData', (ctx) => {
    ctx.body = indexData
})


//引入分类页面假数据
const categoryDatas = require('../datas/categoryDatas.json');
//设定访问接口
router.get('/categoryDatas', (ctx) => {
    ctx.body = categoryDatas
})

//引入cateList假数据
const cateList = require('../datas/indexCateList.json')
//设定访问接口
router.get("/getIndexCateList", (ctx) => {
    ctx.body = cateList
})

//后台服务器获取openid的路由
router.get("/getOpenId", async (ctx) => {
    //从get请求里面通过query拿到传递过来的参数,如果是从post里面拿数据就是用的body
    const code = ctx.query.code
    console.log("从微信小程序里面获取到的code是===>>", code)
    //组装 appId   appsecret
    //appId就是微信开发者的 appId
    const appId = "wx3966efee22048340"
    //appsecret 就是从https://mp.weixin.qq.com/ 这个网址进去,选择开发管理>>开发设置,生成或重置appsecret
    const appsecret = "9ba132dd3eb832555ad119b61c1046a8"
    //按照 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html 里的请求地址设定url
    const url = `https://api.weixin.qq.com/sns/jscode2session?appid=${appId}&secret=${appsecret}&js_code=${code}&grant_type=authorization_code`
    //按照上面网址所描述的交换session,这里fly的使用见https://github.com/wendux/fly
    const {data} = await fly.get(url)
    // console.log("交换回来的数据,我们只要openid===>>>",data.openid)

    //申明一个userinfo,假装就是用户信息,真实环境中,这玩意儿得靠查出来
    const userInfo = {
        username:"王二麻子",
        userage:22,
        openid:data.openid
    }
    //按照https://github.com/auth0/node-jsonwebtoken的说明生成 token
    const token = jwt.sign(userInfo, '一天不收复台湾,就一天不吃榨菜');
    //将token返回
    ctx.body = token
})